Ubuntu安装ollama并更换模型的下载目录

ollama是什么

开源框架
‌Ollama是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计‌。
其主要特点和功能包括简化部署、轻量级与可扩展性、提供简洁的API支持、
包含预构建模型库、支持从多种平台导入模型、跨平台支持以及命令行工具和环境变量配置。‌

Ollama通过极简的命令行操作简化了模型管理流程,
支持离线运行、多模型并行、私有化部署等场景。
它还提供了一系列预先训练好的大型语言模型,
用户可以直接选用这些模型应用于自己的应用程序,
无需从头训练或自行寻找模型源。

此外,Ollama支持多种大型语言模型,如Llama 3、Mistral、Gemma 2等,
并且提供了详细的文档和社区支持,
使得用户能够轻松地在本地环境中高效利用大型语言模型进行自然语言处理任务。

官方网站: https://ollama.com/
官方github: https://github.com/ollama/ollama

注意访问需要科学上网 ,请自行解决

也可尝试使用手机流量开热点链接,此方法不保证完全可行

安装

安装

1
curl -fsSL https://ollama.com/install.sh | sh

验证ollama 是否启动

1
sudo systemctl status ollama
1
2
3
4
5
6
7
root@idx-jk-work-1745566999271:/home/ollama/bin# sudo systemctl status ollama
● ollama.service - Ollama Service
Loaded: loaded (/etc/systemd/system/ollama.service; enabled; preset: enabl>
Active: activating (auto-restart) (Result: exit-code) since Mon 2025-04-28>
Process: 3841 ExecStart=/usr/local/bin/ollama serve (code=exited, status=1/>
Main PID: 3841 (code=exited, status=1/FAILURE)
CPU: 26ms

也可通过命令查看ollama 运行的模型查看

1
ollama list
1
2
root@idx-jk-work-1745566999271:/home/ollama/models# ollama list
NAME ID SIZE MODIFIED

更换模型下载目录

更换原因

根目录分配的空间较小,而ollama 默认 下载模型目录在 /usr/share/ollama/.ollama/models下,所生的6G空间,下载不了较大模型。
而home目录又196G空间,空间较为充足,因此更换模型下载目录

1
2
3
4
5
6
7
8
9
10
11
12
root@idx-jk-work-1745566999271:/home/frp/frp_0.62.0_linux_amd64# df -h 
Filesystem Size Used Avail Use% Mounted on
overlay 46G 40G 6.1G 87% /
tmpfs 64M 0 64M 0% /dev
/dev/disk/by-id/google-home 196G 14G 183G 7% /home
/dev/sda1 46G 40G 6.1G 87% /etc/hosts
shm 64M 0 64M 0% /dev/shm
overlay 196G 14G 183G 7% /home/user/Android/Sdk
tmpfs 12G 560K 12G 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
efivarfs 56K 24K 27K 48% /sys/firmware/efi/efivars
tmpfs 5.9G 100K 5.9G 1% /run/user/1000

关闭Ollama服务

在更改模型路径之前,需要先停止Ollama服务。
使用systemctl命令:

1
sudo systemctl stop ollama
1
sudo systemctl disable ollama.service

创建新的模型路径

  1. 创建新的模型存储目录:
    首先,创建一个新的目录作为模型存储路径。创建/home/ollama/models目录:

    1
    sudo mkdir -p /home/ollama/models
  2. 更改目录权限:
    确保新目录的权限设置正确,允许Ollama访问和写入:

    1
    sudo chmod -R 775 /home/ollama/models
1
sudo chown -R root:root /home/ollama/models
1
sudo chown -R ollama:ollama  /home/ollama/models

修改Ollama服务配置文件

  1. 编辑服务配置文件:
    使用文本编辑器编辑Ollama服务的配置文件:

    1
    sudo vim /etc/systemd/system/ollama.service
  2. 修改配置内容:
    在[Service]部分的Environment字段后,添加新的Environment字段,指定新的模型路径:

    1
    Environment="OLLAMA_MODELS=/data/ollama/models"

完整的配置示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/google/cmdline-tools/bin:/root/Android/Sdk/tools:/root/Android/Sdk/tools/bin:/root/Android/Sdk/platform-tools:/usr/local/go/bin"
Environment="OLLAMA_MODELS=/home/ollama/models"
[Install]
WantedBy=default.target

重载配置并重启Ollama服务

  1. 重载系统服务配置:

    1
    sudo systemctl daemon-reload
  2. 重启Ollama服务:

    1
    sudo systemctl restart ollama

注意此处可能重启较慢,稍等一会生效

  1. 查看服务状态:

sudo systemctl status ollama

验证更改

  1. 检查默认路径:

进入默认的模型路径/usr/share/ollama/.ollama/models,会发现models文件夹已经消失。

  1. 检查新路径:

在新的路径/home/ollama/models下,会看到生成了blobs和manifests文件夹,这表明模型路径已经成功更改。

模型下载

下载一个较大的模型

1
ollama run deepseek-r1:14b

查看 /home/ollama/models 路径下文件

1
2
3
root@idx-jk-work-1745566999271:/home/ollama/models# du -sh ./*
8.4G ./blobs
20K ./manifests

ollama模型的外部使用

ollama下载的模型可本机使用,也可默认本机通过端口调用,即,本地访问127.0.0.1:11434 进行调用模型
而不支持其他地址调用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
root@idx-jk-work-1745566999271:/home/frp/frp_0.62.0_linux_amd64# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1460
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether ce:a2:13:12:82:5f txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
inet 10.88.0.3 netmask 255.255.0.0 broadcast 10.88.255.255
ether 6e:98:e8:2c:f4:62 txqueuelen 0 (Ethernet)
RX packets 1360350 bytes 12397569358 (12.3 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 693306 bytes 257398354 (257.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 733533 bytes 449518844 (449.5 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 733533 bytes 449518844 (449.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

root@idx-jk-work-1745566999271:/home/frp/frp_0.62.0_linux_amd64# telnet 10.88.0.3 11434
Trying 10.88.0.3...
telnet: Unable to connect to remote host: Connection refused
root@idx-jk-work-1745566999271:/home/frp/frp_0.62.0_linux_amd64# telnet 127.0.0.1 11434
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

解决办法,修改ollama 配置文件

1
sudo vim /etc/systemd/system/ollama.service

修改配置内容:
在[Service]部分的Environment字段后,添加新的Environment字段,指定新的模型路径:

1
Environment="OLLAMA_HOST=0.0.0.0:11434"

完整配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/google/cmdline-tools/bin:/root/Android/Sdk/tools:/root/Android/Sdk/tools/bin:/root/Android/Sdk/platform-tools:/usr/local/go/bin"
Environment="OLLAMA_MODELS=/home/ollama/models"
Environment="OLLAMA_HOST=0.0.0.0:11434"
[Install]
WantedBy=default.target

系统服务配置:

1
sudo systemctl daemon-reload

Ollama服务:

1
sudo systemctl restart ollama

注意此处可能重启较慢,稍等一会生效

验证

1
2
3
4
5
6
7
8
9
10
11
12
root@idx-jk-work-1745566999271:/home/frp/frp_0.62.0_linux_amd64# telnet 127.17.0.1 11434
Trying 127.17.0.1...
Connected to 127.17.0.1.
Escape character is '^]'.
^C
Connection closed by foreign host.
root@idx-jk-work-1745566999271:/home/frp/frp_0.62.0_linux_amd64# telnet 10.88.0.3 11434
Trying 10.88.0.3...
Connected to 10.88.0.3.
Escape character is '^]'.
^C
Connection closed by foreign host.

一辈子很短,努力的做好两件事就好;
第一件事是热爱生活,好好的去爱身边的人;
第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;

继开 wechat
欢迎加我的微信,共同交流技术